[−][src]Crate cita_trie
Usage
use std::sync::Arc; use hasher::{Hasher, HasherKeccak}; // https://crates.io/crates/hasher use cita_trie::MemoryDB; use cita_trie::{PatriciaTrie, Trie}; fn main() { let memdb = Arc::new(MemoryDB::new(true)); let hasher = Arc::new(HasherKeccak::new()); let key = "test-key".as_bytes(); let value = "test-value".as_bytes(); let root = { let mut trie = PatriciaTrie::new(Arc::clone(&memdb), Arc::clone(&hasher)); trie.insert(key.to_vec(), value.to_vec()).unwrap(); let v = trie.get(key).unwrap(); assert_eq!(Some(value.to_vec()), v); trie.root().unwrap() }; let mut trie = PatriciaTrie::from(Arc::clone(&memdb), Arc::clone(&hasher), &root).unwrap(); let exists = trie.contains(key).unwrap(); assert_eq!(exists, true); let removed = trie.remove(key).unwrap(); assert_eq!(removed, true); let new_root = trie.root().unwrap(); println!("new root = {:?}", new_root); }
Structs
MemoryDB | |
PatriciaTrie |
Enums
MemDBError | |
TrieError |
Traits
DB | "DB" defines the "trait" of trie and database interaction. You should first write the data to the cache and write the data to the database in bulk after the end of a set of operations. |
Trie |